﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using FluentNHibernate.Mapping;
using YasharEl.Infrastructure.Core.EntityModel.Commenting;
using YasharEl.Infrastructure.Core.EntityModel.Users;

namespace YasharEl.Infrastructure.Core.PersistenceModel.NHibernate.Commenting.Mappings
{
    // TODO : Unmark commented clas map after comment sub class(es) added
    //public class AbstractCommentEntityMap : ClassMap<AbstractCommentEntity>
    //{
    //    public AbstractCommentEntityMap()
    //    {
    //        Table("PE_COMMENTS");
    //        Id(e => e.CommentId)
    //            .Column("Id")
    //            .GeneratedBy
    //                .Identity();
    //        Map(e => e.Text)
    //            .Column("Text")
    //            .Not.Nullable()
    //            .Length(2000);
    //        References(e => e.CreatedBy)
    //            .Column("CREATED_BY")
    //            .PropertyRef(u => u.UserIdentityId)
    //            .Not.Nullable()
    //            .Class<UserEntity>();
    //        Map(e => e.CreatedDate)
    //            .Column("CREATED_DATE")
    //            .Not.Nullable()
    //            .Access.CamelCaseField(Prefix.Underscore);
    //        Map(e => e.IsRead)
    //           .Column("IS_READ")
    //           .Not.Nullable()
    //           .Default("0");
    //        DiscriminateSubClassesOnColumn("OBJECT_TYPE")
    //            .Not.Nullable()
    //            .AlwaysSelectWithValue();
    //    }
    //}
}
